home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / share / hplip / installer / dcheck.pyc (.txt) < prev    next >
Python Compiled Bytecode  |  2009-10-28  |  6KB  |  207 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. import os
  5. import os.path as os
  6. import re
  7. import sys
  8. from base.g import *
  9. from base import utils
  10. ver_pat = re.compile('(\\d+.\\d+)', re.IGNORECASE)
  11. proc_pat = re.compile('(\\d+)', re.I)
  12. ld_output = ''
  13. mod_output = ''
  14.  
  15. def update_ld_output():
  16.     global ld_output
  17.     (status, ld_output) = utils.run('%s -p' % os.path.join(utils.which('ldconfig'), 'ldconfig'), log_output = False)
  18.     if status != 0:
  19.         log.debug('ldconfig failed.')
  20.     
  21.  
  22.  
  23. def check_tool(cmd, min_ver = 0):
  24.     log.debug('Checking: %s (min ver=%f)' % (cmd, min_ver))
  25.     (status, output) = utils.run(cmd)
  26.     if status != 0:
  27.         log.debug('Not found!')
  28.         return False
  29.     if min_ver:
  30.         
  31.         try:
  32.             line = output.splitlines()[0]
  33.         except IndexError:
  34.             status != 0
  35.             status != 0
  36.             line = ''
  37.         except:
  38.             status != 0
  39.  
  40.         log.debug(line)
  41.         match_obj = ver_pat.search(line)
  42.         
  43.         try:
  44.             ver = match_obj.group(1)
  45.         except AttributeError:
  46.             status != 0
  47.             status != 0
  48.             ver = ''
  49.         except:
  50.             status != 0
  51.  
  52.         
  53.         try:
  54.             v_f = float(ver)
  55.         except ValueError:
  56.             status != 0
  57.             status != 0
  58.             return False
  59.  
  60.         log.debug('Ver=%f Min ver=%f' % (v_f, min_ver))
  61.         if v_f < min_ver:
  62.             log.debug('Found, but newer version required.')
  63.         
  64.         return v_f >= min_ver
  65.     min_ver
  66.     log.debug('Found.')
  67.     return True
  68.  
  69.  
  70. def check_lib(lib, min_ver = 0):
  71.     log.debug("Checking for library '%s'..." % lib)
  72.     if ld_output.find(lib) >= 0:
  73.         log.debug('Found.')
  74.         return True
  75.     log.debug('Not found.')
  76.     return False
  77.  
  78.  
  79. def check_file(f, dir = '/usr/include'):
  80.     log.debug("Searching for file '%s' in '%s'..." % (f, dir))
  81.     for w in utils.walkFiles(dir, recurse = True, abs_paths = True, return_folders = False, pattern = f):
  82.         log.debug("File found at '%s'" % w)
  83.         return True
  84.     
  85.     log.debug('File not found.')
  86.     return False
  87.  
  88.  
  89. def locate_files(f, dir):
  90.     log.debug("Searching for file(s) '%s' in '%s'..." % (f, dir))
  91.     found = []
  92.     for w in utils.walkFiles(dir, recurse = True, abs_paths = True, return_folders = False, pattern = f):
  93.         log.debug(w)
  94.         found.append(w)
  95.     
  96.     if found:
  97.         log.debug('Found files: %s' % found)
  98.     else:
  99.         log.debug('No files not found.')
  100.     return found
  101.  
  102.  
  103. def locate_file_contains(f, dir, s):
  104.     '''
  105.         Find a list of files located in a directory
  106.         that contain a specified sub-string.
  107.     '''
  108.     log.debug("Searching for file(s) '%s' in '%s' that contain '%s'..." % (f, dir, s))
  109.     found = []
  110.     for w in utils.walkFiles(dir, recurse = True, abs_paths = True, return_folders = False, pattern = f):
  111.         if check_file_contains(w, s):
  112.             log.debug(w)
  113.             found.append(w)
  114.             continue
  115.     
  116.     if found:
  117.         log.debug('Found files: %s' % found)
  118.     else:
  119.         log.debug('No files not found.')
  120.     return found
  121.  
  122.  
  123. def check_file_contains(f, s):
  124.     log.debug("Checking file '%s' for contents '%s'..." % (f, s))
  125.     
  126.     try:
  127.         if os.path.exists(f):
  128.             for a in file(f, 'r'):
  129.                 update_spinner()
  130.                 if s in a:
  131.                     log.debug("'%s' found in file '%s'." % (s.replace('\n', ''), f))
  132.                     return True
  133.             
  134.         
  135.         log.debug('Contents not found.')
  136.         return False
  137.     finally:
  138.         cleanup_spinner()
  139.  
  140.  
  141.  
  142. def get_process_list():
  143.     processes = []
  144.     for x in utils.walkFiles('/proc', False, True, True):
  145.         s = proc_pat.search(x)
  146.         if s is not None:
  147.             
  148.             try:
  149.                 cmdline = file(os.path.join(x, 'cmdline'), 'r').read().replace('\x00', '').replace('\n', '').strip()
  150.             except IOError:
  151.                 cmdline = None
  152.  
  153.             if cmdline:
  154.                 processes.append((int(s.group(1)), cmdline))
  155.             
  156.         cmdline
  157.     
  158.     return processes
  159.  
  160.  
  161. def check_ps(process_list):
  162.     log.debug("Searching any process(es) '%s' in running processes..." % process_list)
  163.     processes = get_process_list()
  164.     
  165.     try:
  166.         for pid, cmdline in processes:
  167.             update_spinner()
  168.             for p in process_list:
  169.                 if p in cmdline:
  170.                     log.debug("'%s' found." % cmdline)
  171.                     return True
  172.             
  173.         
  174.         log.debug('Not found')
  175.         return False
  176.     finally:
  177.         cleanup_spinner()
  178.  
  179.  
  180.  
  181. def get_ps_pid(process):
  182.     log.debug("Searching for the PID for process '%s' in running processes..." % process)
  183.     processes = get_process_list()
  184.     
  185.     try:
  186.         for pid, cmdline in processes:
  187.             update_spinner()
  188.             if process in cmdline:
  189.                 log.debug("'%s' found." % cmdline)
  190.                 return pid
  191.         
  192.         log.debug('Not found')
  193.         return 0
  194.     finally:
  195.         cleanup_spinner()
  196.  
  197.  
  198.  
  199. def check_lsmod(module):
  200.     global mod_output
  201.     if not mod_output:
  202.         lsmod = utils.which('lsmod')
  203.         (status, mod_output) = utils.run(os.path.join(lsmod, 'lsmod'), log_output = False)
  204.     
  205.     return mod_output.find(module) >= 0
  206.  
  207.